python - py.test 运行 Python2 和 Python3
全部标签 我想知道如何为混合到几个类中的模块编写单元测试,但不太知道如何去做:我是通过在其中一个测试文件中为包含它们的类编写测试来测试实例方法(似乎不正确),还是您能以某种方式将包含方法的测试保存在特定的单独文件中到模块?同样的问题也适用于类方法。我应该像普通Rails模型那样为模块中的每个类创建一个单独的测试文件,还是它们存在于通用模块测试文件中(如果存在)? 最佳答案 恕我直言,您应该进行涵盖模块所有用途的功能测试覆盖率,然后在单元测试中对其进行隔离测试:setupdo@object=Object.new@object.extend(Gr
我知道如何在Ruby中运行shell命令,例如:%x[#{cmd}]但是,我该如何指定一个目录来运行这个命令呢?有没有类似的脱shell方式,类似Python中的subprocess.Popen:subprocess.Popen(r'c:\mytool\tool.exe',cwd=r'd:\test\local')谢谢! 最佳答案 您可以使用Dir.chdir的block版本。在block内,您位于请求的目录中,在block之后,您仍在上一个目录中:Dir.chdir('mydir'){%x[#{cmd}]}
尝试在全新安装(fedora)上使用RVM启动并运行Ruby1.9.1。执行rvminstall1.9.1后,rubygems错误日志显示找不到zlibnosuchfiletoload--zlib(LoadError)但是zlib运行时和开发库都已安装并且是最新的。我现在有点被这个难住了。 最佳答案 使用rvm安装zlibhttps://rvm.io/packages/zlib/rvmpackageinstallzlibrvmremove1.9.1rvminstall1.9.1-C--with-zlib-dir=$rvm_path/
在RubyKoans,about_hashes.rb部分包含以下代码和注释:deftest_changing_hasheshash={:one=>"uno",:two=>"dos"}hash[:one]="eins"expected={:one=>"eins",:two=>"dos"}assert_equaltrue,expected==hash#BonusQuestion:Whywas"expected"brokenoutintoavariable#ratherthanusedasaliteral?end我无法在评论中找到奖金问题的答案-我尝试实际进行他们建议的替换,结果是一样的。我
当我运行像gem-v这样的Ruby命令时,我得到了这个错误:/Users/kristoffer/.rvm/rubies/ruby-1.9.2-p180/bin/gem:4:warning:Insecureworldwritabledir/Users/kristofferinPATH,mode0407771.6.2首先我不明白这是什么意思。根据echo$PATH,/Users/kristoffer不在我的路径中。echo$PATH的结果是:/Users/kristoffer/.rvm/gems/ruby-1.9.2-p180/bin:/Users/kristoffer/.rvm/gems
如何连续运行一个命令五次?例如:5*send_sms_to("xxx"); 最佳答案 要连续运行一个命令5次,你可以这样做5.times{send_sms_to("xxx")}有关详细信息,请参阅timesdocumentation还有timessection的RubyEssentials 关于ruby-如何使用Ruby运行一个命令五次?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio
我下载了一个项目的源代码,发现了一个错误并修复了它。现在我想运行测试以查明我是否损坏了任何东西。测试在minitestDSL中。如何同时运行它们?我搜索了适用的佣金任务等,但没有找到。 最佳答案 这是指向Rake::TestTask的链接.页面中有一个示例可以帮助您入门。我将发布另一个我现在正在使用的gem:require'rake/testtask'Rake::TestTask.newdo|t|t.pattern="spec/*_spec.rb"end如您所见,我假设我的文件都在/lib中,而我的规范在/spec中并命名为what
我正在尝试测试以下方法:defunprocess_move(board,move)ifmove[0].instance_of?(Array)multi_move=@multi_move.pop(2).reversemulti_move.eachdo|single_move|unapply_move(board,single_move)endelseboard=unapply_move(board,move)endboardend我想为@multi_move设置状态,但我不想添加仅用于测试的访问器。有没有办法在没有访问器的情况下这样做?谢谢。 最佳答案
我是Capistrano的新手,我曾尝试使用Capistrano的DSL在服务器上运行shell命令(“运行”、“执行”等),但它似乎已被弃用。在搜索和搜索功能等价物之后,我仍然迷路了。当前代码:desc'Dosomething'task:do_somethingexecute'echosometext'end输出:capaborted!undefinedmethod`execute'formain:Object/Users/Justin/Dropbox/xxxx/xxxx/xxxx/Capfile:45:in`block(2levels)in'/Users/Justin/.rvm/g
我在使用Rails4并注意到我的一些RSpec测试失败了,因为我的一些测试重构使用了前置过滤器(大概是因为事务)。这篇文章描述了一个类似的问题:railstestdatabasenotclearingaftersomeruns代替使用DatabaseCleanergem,是否有清除测试数据库的rake命令?我相信rakedb:test:prepare在Rails4中被弃用了。此外,如果在交易之前,如`post:create,user:Fabricate.attributes_for(:user)`是持久性的,是否有另一种重构方式来避免手动清除测试数据库的需要?